Information technology (IT) industry businesses need the ability to distribute transaction processing across multiple sites and have that processing handled in an efficient manner, effectively using the computing resources available, and recovering from transaction, transmission, or response failures when they occur. For example, in processing credit card transactions, a determination must be made whether the purchaser has sufficient credit before the transaction can proceed. Given the need for speed and accuracy in such an environment, multiple distributed systems may be required to handle bandwidth and other error conditions.
One particular solution may be to provide redundant transaction processing systems in which each processing system is “deterministic” in that each will process data in the same manner to provide the same result. Unfortunately, this strategy may have significant limitations due to increased processing, storage, and bandwidth requirements. Current techniques fail to overcome all of the penalties associated with redundant, deterministic transaction processing systems. Accordingly, a need exists for a distributed processing system that can achieve a highly-available, transactional distributed processing model without incurring all of the penalties associated with such operations.